<#include "macro_.ftl">
package ${packageCode}.${moduleMapperKey}.dto;

import java.util.Date;
import java.util.List;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import org.springframework.data.annotation.CreatedBy;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedBy;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.annotation.Transient;

import com.cardone.common.dto.PaginationEntityDto;

import ${packageCode}.${moduleMapperKey}.po.${entityMapper.code};

/**
 * <@defaultIfBlank str="${entityMapper.remarks!}" defaultSt="${entityMapper.code!}"/>
 *
 * @author ${author!'yaoht'}
 * 
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
public class ${entityMapper.code}Dto extends ${entityMapper.code} implements PaginationEntityDto {
	/**
	 * 版本号
	 */
	@Transient
	private static final long serialVersionUID = ${serialVersionUID!'1'}L;
	
	/**
	 * <@defaultIfBlank str="${entityMapper.remarks!}" defaultSt="${entityMapper.code!}"/>
	 * 
	 * @return <@defaultIfBlank str="${entityMapper.remarks!}" defaultSt="${entityMapper.code!}"/>
	 */
	public static ${entityMapper.code}Dto new${entityMapper.code}() {
		return new ${entityMapper.code}Dto();
	}

	/**
	 * 标识集合
	 */
	@Transient
	private String ids;

	/**
	 * 标识集合
	 */
	@Transient
	private List<String> idList;

	/**
	 * 分页号
	 */
	@Transient
	private int paginationNo;

	/**
	 * 分页大小
	 */
	@Transient
	private int paginationSize;

	/**
	 * 创建人编码
	 */
	@Transient
	private String createdByCode;

	/**
	 * 创建人标识
	 */
	@Transient
	@CreatedBy
	private String createdById;

	/**
	 * 创建人名称
	 */
	@Transient
	private String createdByName;

	/**
	 * 创建时间
	 */
	@Transient
	@CreatedDate
	private Date createdDate;

	/**
	 * 创建时间
	 */
	@Transient
	private String createdDateStr;

	/**
	 * 修改人标识
	 */
	@Transient
	@LastModifiedBy
	private String lastModifiedById;

	/**
	 * 修改人编码
	 */
	@Transient
	private String lastModifiedByCode;

	/**
	 * 修改人名称
	 */
	@Transient
	private String lastModifiedByName;

	/**
	 * 修改时间
	 */
	@Transient
	@LastModifiedDate
	private Date lastModifiedDate;

	/**
	 * 修改时间
	 */
	@Transient
	private String lastModifiedDateStr;
<#list entityMapper.fieldMapperMap?values as fieldMapper>
<#if (fieldMapper.typeCode!'String') == 'Date'>

	/**
     * <@defaultIfBlank str="${fieldMapper.remarks!}" defaultSt="${fieldMapper.code!}"/>
     */
	@Transient
	private String ${fieldMapper.code}Str;
</#if>
</#list>
}